package funcionesDeSeleccion;

import java.util.ArrayList;
import java.util.Collection;

import util.Aleatorio;

import elementosEvolutivos.Cromosoma;
import elementosEvolutivos.FuncSeleccion;

public class Ruleta implements FuncSeleccion {

	@Override
	public Collection<Cromosoma> seleccionar(Collection<Cromosoma> poblacion, int tam_sel) {
		Collection<Cromosoma> nuevaPoblacion = new ArrayList<Cromosoma>();
		double prob;
		int pos_superv;
		for(int i=0; i<tam_sel; i++){	
			pos_superv = 0;
			prob = Aleatorio.getDoubleAleatorio();
			for(Cromosoma cr:poblacion){
				if(prob > cr.getPunt_acum() && pos_superv<poblacion.size()-1)
					pos_superv++;
				else
					break;
			}
			nuevaPoblacion.add(((ArrayList<Cromosoma>)poblacion).get(pos_superv).clone());
		}
		return nuevaPoblacion;
	}

}
